﻿using Onshi.POS.Formularios.Properties;
using Onshi.POS.Formularios.Recursos;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Configuration;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace Onshi.POS.Formularios
{
    public partial class Principal : FormularioBase
    {
        #region Constructores

        public Principal()
        {
            InitializeComponent();
        }

        #endregion

        #region Atributos

        private static Int32 idUsuarioSistema;

        #endregion

        #region Propiedades

        public static Int32 IdUsuarioSistema
        {
            get { return idUsuarioSistema; }
            set { idUsuarioSistema = value; }
        }

        #endregion

        #region Metodos

        private void HabilitarMenu(Boolean habilitar)
        {
            mnuCaja.Visible = habilitar;
            mnuUsuarios.Visible = habilitar;
            mnuClientes.Visible = habilitar;
            mnuProveedores.Visible = habilitar;
            mnuVendedores.Visible = habilitar;
            mnuUbicaciones2.Visible = habilitar;
            mnuVentas.Visible = habilitar;
            mnuCompras.Visible = habilitar;
            mnuArticulos.Visible = habilitar;
            mnuIniciarSesion.Enabled = !habilitar;
            mnuCerrarSesion.Enabled = habilitar;
            mnuCambiarClave.Enabled = habilitar;
            toolPrincipal.Visible = habilitar;
        }

        #endregion

        #region Eventos

        #region BarraHerramientas

        private void toolClientes_Click(Object sender, EventArgs e)
        {
            var clientes = new Clientes(false);
            clientes.MdiParent = this;
            clientes.Show();
        }

        private void toolProveedores_Click(Object sender, EventArgs e)
        {
            var proveedores = new Proveedores(false);
            proveedores.MdiParent = this;
            proveedores.Show();
        }

        private void toolVendedores_Click(Object sender, EventArgs e)
        {
            var vendedores = new Vendedores(false);
            vendedores.MdiParent = this;
            vendedores.Show();
        }

        private void toolArticulos_Click(Object sender, EventArgs e)
        {
            var articulos = new Articulos(false);
            articulos.MdiParent = this;
            articulos.Show();
        }

        #endregion

        #region Menu

        private void mnuSubRubrosArticulosABM_Click(Object sender, EventArgs e)
        {
            var subRubrosArticulos = new SubRubrosArticulos(false);
            subRubrosArticulos.MdiParent = this;
            subRubrosArticulos.Show();
        }

        private void mnuUbicacionesABM_Click(Object sender, EventArgs e)
        {
            var ubicaciones = new Ubicaciones(false);
            ubicaciones.MdiParent = this;
            ubicaciones.Show();
        }

        private void mnuDescuentosRecargosFechasHorasABM_Click(Object sender, EventArgs e)
        {
            var descuentosRecargosFechasHoras = new DescuentosRecargosFechasHoras(false);
            descuentosRecargosFechasHoras.MdiParent = this;
            descuentosRecargosFechasHoras.Show();
        }

        private void mnuCamposPersonalizadosClientesABM_Click(Object sender, EventArgs e)
        {
            var camposPersonalizadosClientes = new CamposPersonalizadosClientes(false);
            camposPersonalizadosClientes.MdiParent = this;
            camposPersonalizadosClientes.Show();
        }

        private void mnuRubrosArticulosABM_Click(Object sender, EventArgs e)
        {
            var rubrosArticulos = new RubrosArticulos(false);
            rubrosArticulos.MdiParent = this;
            rubrosArticulos.Show();
        }

        private void mnuMarcasABM_Click(Object sender, EventArgs e)
        {
            var marcas = new Marcas(false);
            marcas.MdiParent = this;
            marcas.Show();
        }

        private void mnuProveedoresABM_Click(Object sender, EventArgs e)
        {
            var proveedores = new Proveedores(false);
            proveedores.MdiParent = this;
            proveedores.Show();
        }

        private void mnuRubrosProveedoresABM_Click(Object sender, EventArgs e)
        {
            var rubrosProveedores = new RubrosProveedores(false);
            rubrosProveedores.MdiParent = this;
            rubrosProveedores.Show();
        }

        private void mnuUsuariosABM_Click(Object sender, EventArgs e)
        {
            var usuarios = new Usuarios(false);
            usuarios.MdiParent = this;
            usuarios.Show();
        }

        private void mnuPerfilesABM_Click(Object sender, EventArgs e)
        {
            var perfiles = new Perfiles(false);
            perfiles.MdiParent = this;
            perfiles.Show();
        }

        private void mnuRubrosVendedoresABM_Click(Object sender, EventArgs e)
        {
            var rubrosVendedores = new RubrosVendedores(false);
            rubrosVendedores.MdiParent = this;
            rubrosVendedores.Show();
        }

        private void mnuVendedoresABM_Click(Object sender, EventArgs e)
        {
            var vendedores = new Vendedores(false);
            vendedores.MdiParent = this;
            vendedores.Show();
        }

        private void mnuLocalidadesABM_Click(Object sender, EventArgs e)
        {
            var localidades = new Localidades(false);
            localidades.MdiParent = this;
            localidades.Show();
        }

        private void mnuBarriosABM_Click(Object sender, EventArgs e)
        {
            var barrios = new Barrios(false);
            barrios.MdiParent = this;
            barrios.Show();
        }

        private void mnuListasPreciosVentasABM_Click(Object sender, EventArgs e)
        {
            var listasPreciosVentas = new ListasPreciosVentas(false);
            listasPreciosVentas.MdiParent = this;
            listasPreciosVentas.Show();
        }

        private void mnuRubrosClientesABM_Click(Object sender, EventArgs e)
        {
            var rubrosClientes = new RubrosClientes(false);
            rubrosClientes.MdiParent = this;
            rubrosClientes.Show();
        }

        private void mnuClientesABM_Click(Object sender, EventArgs e)
        {
            var clientes = new Clientes(false);
            clientes.MdiParent = this;
            clientes.Show();
        }

        private void mnuListasPreciosComprasABM_Click(Object sender, EventArgs e)
        {
            var listasPreciosCompras = new ListasPreciosCompras(false);
            listasPreciosCompras.MdiParent = this;
            listasPreciosCompras.Show();
        }

        private void mnuIniciarSesion_Click(Object sender, EventArgs e)
        {
            var usuariosInicioSesion = new UsuariosInicioSesion();
            if (usuariosInicioSesion.ShowDialog() == DialogResult.OK)
                HabilitarMenu(true);
        }

        private void mnuCerrarSesion_Click(Object sender, EventArgs e)
        {
            if (MessageBox.Show("¿Esta seguro que desea cerrar la sesion?", ConfigurationManager.AppSettings["NombreAplicacion"], MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button2) == DialogResult.Yes)
            {
                idUsuarioSistema = 0;
                HabilitarMenu(false);
            }
        }

        private void mnuDescuentosRecargosCantidadesABM_Click(Object sender, EventArgs e)
        {
            var descuentosRecargosCantidades = new DescuentosRecargosCantidades(false);
            descuentosRecargosCantidades.MdiParent = this;
            descuentosRecargosCantidades.Show();
        }

        private void mnuCamposPersonalizadosProveedoresABM_Click(Object sender, EventArgs e)
        {
            var camposPersonalizadosProveedores = new CamposPersonalizadosProveedores(false);
            camposPersonalizadosProveedores.MdiParent = this;
            camposPersonalizadosProveedores.Show();

        }

        private void mnuCamposPersonalizadosVendedoresABM_Click(Object sender, EventArgs e)
        {
            var camposPersonalizadosVendedores = new CamposPersonalizadosVendedores(false);
            camposPersonalizadosVendedores.MdiParent = this;
            camposPersonalizadosVendedores.Show();
        }

        private void mnuCamposPersonalizadosArticulosABM_Click(Object sender, EventArgs e)
        {
            var camposPersonalizadosArticulos = new CamposPersonalizadosArticulos(false);
            camposPersonalizadosArticulos.MdiParent = this;
            camposPersonalizadosArticulos.Show();
        }

        private void mnuArticulosABM_Click(Object sender, EventArgs e)
        {
            var articulos = new Articulos(false);
            articulos.MdiParent = this;
            articulos.Show();
        }

        private void mnuImpuestosABM_Click(Object sender, EventArgs e)
        {
            var impuestos = new Impuestos(false);
            impuestos.MdiParent = this;
            impuestos.Show();
        }

        #endregion

        private void testToolStripMenuItem_Click(Object sender, EventArgs e)
        {
            var a = new ComprasAlta();
            a.ShowDialog();
        }

        #endregion
    }
}
